home *** CD-ROM | disk | FTP | other *** search
- /*
- File: ShellSort.cp
-
- Contains: Apply a ShellSort algorithm to an offscreen, scrambled GWorld
-
- Written by:
-
- Copyright: Copyright © 1988-1999 by Apple Computer, Inc., All Rights Reserved.
-
- You may incorporate this Apple sample source code into your program(s) without
- restriction. This Apple sample source code has been provided "AS IS" and the
- responsibility for its operation is yours. You are not permitted to redistribute
- this Apple sample source code as "Apple sample source code" after having made
- changes. If you're going to re-distribute the source, we require that you make
- it clear in the source that the code was descended from Apple sample source
- code, but that you've made changes.
-
- Change History (most recent first):
- 7/27/1999 Karl Groethe Updated for Metrowerks Codewarror Pro 2.1
-
-
- */
- #include "SortPicts.h"
-
- void ShellSort( SortPicts *sortPicts)
- {
- sortPicts->ShellSort();
- }
-
- /*************************************************************/
- /* */
- /* The Actual Sort Algorithms */
- /* */
- /*************************************************************/
-
-
- void SortPicts :: ShellSort( void)
- {
- long loop, sortSize, inLoop;
- long min;
- long data;
-
- sortSize = 1;
- while( sortSize < N)
- sortSize = 3 * sortSize + 1;
-
- do
- {
- sortSize /= 3;
- for( loop = sortSize; loop < N; ++loop)
- {
- min = sortData[loop];
-
- for( inLoop = loop; (data = sortData[inLoop - sortSize]) > min; )
- {
- SetSortItem( inLoop, data);
-
- inLoop -= sortSize;
- if( inLoop < sortSize)
- break;
- }
-
- SetSortItem( inLoop, min);
- }
-
- } while( sortSize > 0); // 1 = cool picts; 0 = actual sort
- }
-
-
-
-